The following description is provided to assist the understanding of the reader. None of the information provided or references cited is admitted to be prior art.
Virtual computing systems are widely used in a variety of applications. Virtual computing systems include one or more host machines running one or more virtual machines concurrently. The one or more virtual machines utilize the hardware resources of the underlying one or more host machines. Each virtual machine may be configured to run an instance of an operating system. Modern virtual computing systems allow several operating systems and several software applications to be safely run at the same time on the virtual machines of a single host machine, thereby increasing resource utilization and performance efficiency. Each virtual machine is managed by a hypervisor or virtual machine monitor. Occasionally, the virtual machines may be migrated from one host machine to another host machine. Typically, such migration occurs when the virtual machine is not in use. In some instances, live migration of a virtual machine that is in use is done by copying data stored in memory to the second host machine incrementally until a final data copy can be performed. However, the present day mechanism for live migrating a virtual machine from a first host machine to a second host machine can result in convergence periods that are excessively long, never converge, or degrade performance of the virtual machine below a user acceptability.